package com.jsb.laundry.model.dto;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(description = "我的页面实体")
public class UserInfoCenterDto {


    @ApiModelProperty("我的资产")
    public List<Property> property;

    @ApiModelProperty("猜你喜欢")
    private List<GuessYouLike> guessYouLike;

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Accessors(chain = true)
    @ApiModel(description = "账户余额")
    public static class AccountBalance implements Property{
        @ApiModelProperty("账户余额")
        @JsonProperty("value")
        private String userAccountBalance = "0";
        @ApiModelProperty("账户其他字段")
        private String uri;
    }

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Accessors(chain = true)
    @ApiModel(description = "校服套餐")
    public static class SchoolPackage implements Property{
        @ApiModelProperty("校服套餐")
        @JsonProperty("value")
        private String schoolPackage = "0";
        @ApiModelProperty("其他字段")
        private String uri;
    }

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Accessors(chain = true)
    @ApiModel(description = "校服套餐")
    public static class MonthCard implements Property{
        @ApiModelProperty("包月卡")
        @JsonProperty("value")
        private String monthCardNum = "0";
        @ApiModelProperty("其他字段")
        private String uri;
    }

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Accessors(chain = true)
    @ApiModel(description = "优惠券")
    public static class Coupon implements Property{
        @ApiModelProperty("优惠券")
        @JsonProperty("value")
        private String couponNum = "0";
        @ApiModelProperty("其他字段")
        private String uri;
    }

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Accessors(chain = true)
    @ApiModel(description = "猜你喜欢")
    public static class GuessYouLike {

        @ApiModelProperty("活动的分类id")
        @JsonIgnore
        private String activityCateId;

        @ApiModelProperty("活动ID")
        private String activityId;

        @ApiModelProperty("活动标题")
        private String activityTitle;

        @ApiModelProperty("活动外展示图片")
        private String activityImg;

        @ApiModelProperty("活动中最低价服务的id")
        private String serveId;

        @ApiModelProperty("活动中最低价的服务价格")
        private String bottomPrice;

        @ApiModelProperty("活动销量")
        private String activitySales;

    }

}
